import java.util.Calendar;

public class Persona extends Item{
	
	/* Atributos */
	private String nombre;
	private String apellido;
	private int codigoPostal;
	private Calendar fechaNac;
	private String direccion, ciudad;
	private int dni;
	private int telefono;
	
	/* Constructores */
	public Persona(){
		
	}
	
	public Persona(int dni, String nombre, String apellido, int dia, int mes, int anio, String direccion, int codigoPostal, String ciudad, int telefono){
		this.setNombre(nombre);
		this.setApellido(apellido);
		this.setDireccion(direccion);
		this.setCodigoPostal(codigoPostal);
		this.setCiudad(ciudad);
		this.setFechaNacimiento(dia,mes,anio);
		this.setDni(dni);
		this.setTelefono(telefono);
	}
	
	public Persona(String nombre, String apellido, int dni, String direccion, int telefono){
		this.setNombre(nombre);
		this.setApellido(apellido);
		this.setDireccion(direccion);
		this.setDni(dni);
		this.setTelefono(telefono);
	}

	/* Getters And Setters */
	public String getNombre() {
		return nombre;
	}
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	public String getApellido() {
		return apellido;
	}
	public void setApellido(String apellido) {
		this.apellido = apellido;
	}
	public int getCodigoPostal() {
		return codigoPostal;
	}
	public void setCodigoPostal(int codigoPostal) {
		this.codigoPostal = codigoPostal;
	}
	public String getDireccion() {
		return direccion;
	}
	public void setDireccion(String direccion) {
		this.direccion = direccion;
	}
	public String getCiudad() {
		return ciudad;
	}
	public void setCiudad(String ciudad) {
		this.ciudad = ciudad;
	}
	public int getDni() {
		return dni;
	}
	public void setDni(int dni) {
		this.dni = dni;
	}
	public int getTelefono() {
		return telefono;
	}
	public void setTelefono(int telefono) {
		this.telefono = telefono;
	}

	public Calendar getFechaNac() {
	
		return fechaNac;
	}
	
	public void setFechaNac(Calendar fechaNac) {
		this.fechaNac = fechaNac;
	}

	/* Metodos */
	public void setFechaNacimiento(long milisegundos){		
		Calendar fechaNa = Calendar.getInstance();
		fechaNa.setTimeInMillis(milisegundos);
		this.setFechaNac(fechaNa);
	}
	
	public void setFechaNacimiento(int dia, int mes,int anio){

		Calendar fechaNa = Calendar.getInstance();
		fechaNa.set(anio, mes, dia);
		this.setFechaNac(fechaNa);
	}
	
	public Calendar getFechaNacimiento(){
		return getFechaNac();
	}
	
	public boolean esMayorQue(Persona otroTipo){
		if(this.fechaNac.compareTo(otroTipo.getFechaNac())<0){
			return true;
		}
		else
		{
			return false;
		}
	}
	
	public boolean esMayorQue(Calendar fecha){
		if(this.fechaNac.compareTo(fecha)<0){
			return true;
		}
		else
		{
			return false;
		}
	}
	
	public boolean viveEn(String ciudad){
		if(this.getCiudad()==ciudad){
			return true;
		}
		else
		{
			return false;
		}
	}
	
	public boolean esMayorDeEdad(){
		Calendar dieciocho = Calendar.getInstance();
		dieciocho.set(dieciocho.get(Calendar.YEAR-18), dieciocho.get(Calendar.MONTH), dieciocho.get(Calendar.DAY_OF_MONTH));
		
		if(this.fechaNac.compareTo(dieciocho)>0){
			return true;
		}
		else
		{
			return false;
		}
		
	}
	
	public int obtenerEdad(){
		Calendar actual = Calendar.getInstance();
		actual.set(actual.get(Calendar.YEAR) - this.getFechaNac().get(Calendar.YEAR), actual.get(Calendar.MONTH), actual.get(Calendar.DAY_OF_MONTH));
		return actual.get(Calendar.YEAR);
	}
	
}
